// pages/publishshop/publishshop.js
import {getshoptype,publishShop} from '../../utils/api'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    show:false,
    show2:false,
    inputValue:'',//商品价格
    imglist:[],
    class:'',//选择的分类
    classify:[],//分类列表
    method:['包邮','卖家承担运费','买家承担运费'],
    shopMethod :0,
    inputValue2:'',//邮费
    condition:0,//新旧程度
    conditionlist:['全新','九成新','八成新'],
    description:''//商品介绍
  },
  onPickerChange2(e) {
    const index = e.detail.value; 
    this.setData({
      condition: index
    });
  },
  //邮费价格验证
  onInput2: function (e) {
    const value = e.detail.value;
    if (!/^\d*\.?\d{0,2}$/.test(value)) {
        // 如果输入无效，则清空输入
        this.setData({
            inputValue2: ''
        });
    } else {
        // 处理有效的输入
        if(value.length>9) return this.setData({
          inputValue2: this.data.inputValue
        })
        this.setData({
            inputValue2: value
        });
    }
},
  onPickerChange(e) {
    const index = e.detail.value; 
    this.setData({
      shopMethod: index
    });
  },
  //获取商品分类
  async getShoptype(){
    const {data:res} = await getshoptype()
    console.log(res)
    if(res.data.code === 200){
      this.setData({
        classify:res.data.data
      })
      
    }
  },

  //打开价钱弹窗
  openprice(){
    this.setData({
      show:true
    })
  },
  onClose(){
    this.setData({
      show:false
    })
  },
   //打开邮寄方式弹窗
   open(){
    this.setData({
      show2:true
    })
  },
  onClose2(){
    this.setData({
      show2:false
    })
  },
  //选择图片
  chooseimg(){
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      success: (res) => {
        console.log(res.tempFilePaths);
        const tempFilePath = res.tempFilePaths[0];
        let list = this.data.imglist;
        list.push(tempFilePath);
        this.setData({
          imglist: list
        });
      }
    });
  },
  //删除图片
  deleteimg(e) {
  
    let list = this.data.imglist;
    const newlist = list.filter(item => item!== e.currentTarget.dataset.imgsrc);
    this.setData({
      imglist: newlist
    });
  },
  //处理价格输入
  onInput: function (e) {
    // console.log(e.detail)
    const value = e.detail.value;
    // 使用正则表达式检测输入是否有效
    if (!/^\d*\.?\d{0,2}$/.test(value)) {
      
        // 如果输入无效，则清空输入
        this.setData({
            inputValue: ''
        });
    } else {
        // 处理有效的输入
        if(value.length>9) return this.setData({
          inputValue: this.data.inputValue
        })
        this.setData({
            inputValue: value
        });
    }
},
//选择分类
chooseclass(e){
  console.log(e.currentTarget.dataset.classid)
  this.setData({
    class:e.currentTarget.dataset.classid
  })
},
//获取商品详情
getdescription(e){
  this.setData({
    description:e.detail.value
  })
},
//发布商品
release(){
  //inputValue---商品价格   inputValue2---邮费  shopMethod---邮寄方式  condition--新旧程度  description--商品介绍
  const {inputValue,inputValue2,shopMethod,condition,description,imglist} = this.data
  if(!inputValue||!description||!this.data.class) return wx.showToast({
    title: '请填写完整信息',
    icon: 'none',
    duration: 1000,
    mask:true
  });
  if(shopMethod==2&&!inputValue2) return wx.showToast({
    title: '请填写完整信息',
    icon: 'none',
    duration: 1000,
    mask:true
  });
  if(imglist.length==0) return wx.showToast({
    title: '请选择至少一张图片',
    icon: 'none',
    duration: 1000,
    mask:true
  });
  const upfile = this.data.imglist.map(item=>{
      return new Promise((resolve, reject)=>{
        wx.uploadFile({
          filePath: item,
          name: 'uploadFile',
          method: 'POST',
          header: {
            'content-type': 'multipart/form-data'
          },
          url: 'http://localhost:3000/shop/upload',
          success: (res) => {
            console.log(res)
            resolve(res);
          },
          fail: (err) => {
            console.error(`上传失败: ${filePath}`, err);
            reject(err);
          }
          })
      })
   
  })
  Promise.all(upfile).then(async(results)=>{
    console.log(results)
    let list = [];
    let listcode = []
    results.map(item => {
        list.push(JSON.parse(item.data).data.data);
        listcode.push(JSON.parse(item.data).data.code)
    });
    console.log(list)
    const url = JSON.stringify(list)
    const class_id = this.data.class
    let {inputValue :price,inputValue2:shippingCost,shopMethod:shippingMethod,condition,description} = this.data 
    if(shippingMethod==0||shippingMethod==1){
      shippingCost = 0
    }
    console.log(listcode)
    if(listcode.includes(500))  return  wx.showToast({
      title: '图片违规',
      icon: 'none',
      duration: 2000,
      mask:true
    });
    const {data:res} = await publishShop({
      url,price,description,class_id,condition,shippingMethod,shippingCost
    })
    console.log(res)
    if(res.data.code !=200) return wx.showToast({
      title: '发布失败',
      icon: 'none',
      duration: 2000,
      mask:true
    });
    wx.showToast({
      title: '发布成功',
      icon: 'success',
      duration: 2000,
      mask:true
    });
    this.setData({
      inputValue:'',
      imglist:[],
      inputValue2:'',
      condition:0,
      description:'',
      shippingMethod:0,
      class:''
    })
  }).catch((error) => {
        console.error('其中一张图片上传失败:', error);
  });
},
  onLoad(options) {
    this.getShoptype()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})